const path = require("path");//引入Node中的path模块
/**
 * 
 * @param {String} dir 一个目录的名字 
 */
function resolve(dir) {
  //返回一个绝对路径
  return path.resolve(dir)
}
// console.log(resolve('pages'));

//获取环境
let env = process.env.NODE_ENV;
//根据不同的环境,将项目打包在不同的文件夹,默认是dist
//产品环境打包到proDist文件目录
//测试环境 打包到testDisrt
let outputDirName;
switch (env) {
  case "production":
    outputDirName = "proDist"
    break;
  case "test":
    outputDirName = "testDist"
    break;
  default:
    outputDirName = "dist"
}
module.exports = {
  outputDir:outputDirName,//配置打包之后的输出目录
  publicPath: "./",
  lintOnSave: false,//在保存的时候不启用elsint检查代码
  devServer: {//开发服务器
    port: env==="qf"?8081:8080,//根据不同的环境,运行项目在不同的端口
    proxy: {//配置代理
      "/api": {//代理的url
        target: process.env.VUE_APP_BASE_URL,//目标服务器 
        pathRewrite: { //路径重写
          "^/api": ""
        }
      }
    }
  },
  //chainWebpack 合并webpack选项
  chainWebpack: config => {
    config.resolve.alias
      //路径字符串是pages的时候,指向pages文件夹的绝对路径
      .set("pages", resolve('src/pages'))
      .set("component", resolve('src/compoment'))
      .set("src", resolve('src'))
      .set("~", resolve("src/pages"))
  }
};
//注:配置了vue.config.js这个文件 一定要重启服务器才能生效

//pathRewrite

//接口的真实地址:http://chst.vip:8081/data/index.json

//不重写路径,最终解析的结果:
//http://chst.vip:8081/api/data/index.json

//重写路径之后的结果:
//http://chst.vip:8081/data/index.json


//什么情况下不需要路径重写?

//假如接口地址就是: http://chst.vip:8081/api/data/index.json
//不需要重写

//是不是一定写/api?
//不是 任意的字符都可以 只要自己定义好  并且统一